Select prvni kladnych hodnot, pak zapornych

Otázka od: Bohac Frantisek

18. 6. 2004 11:36

Dobry den,

potreboval bych, v selectu v databazi Accessu udelat to, aby mi vyjely prvni
hodnoty kladne vzestupne a pak zaporne:

10
40
55
70
80
-2
-14
-25

Jde to nejak udelat pres SQL? Slo by to vice dotazy, ale nevim, jak je
zaroven zobrazit v gridu...

Nakopnete me nekdo?

Dekuji.

S pozdravem

Frantisek Bohac


Odpovedá: Petr Langer

18. 6. 2004 11:26

SELECT hodnota FROM tabulka WHERE hodnota >= 0 ORDER BY hodnota
UNION ALL
SELECT hodnota FROM tabulka WHERE hodnota < 0 ORDER BY hodnota DESC

HTH,
    Petr Langer

----- Original Message -----
From: "Bohac Frantisek" <bohacf@vnol.cz>
Subject: Select prvni kladnych hodnot, pak zapornych


> Dobry den,
>
> potreboval bych, v selectu v databazi Accessu udelat to, aby mi vyjely
prvni
> hodnoty kladne vzestupne a pak zaporne:
>
> 10
> 40
> 55
> 70
> 80
> -2
> -14
> -25
>
> Jde to nejak udelat pres SQL? Slo by to vice dotazy, ale nevim, jak je
> zaroven zobrazit v gridu...
>
> Nakopnete me nekdo?
>
> Dekuji.
> S pozdravem
>
> Frantisek Bohac


Odpovedá: Jaromir Cermak

18. 6. 2004 11:28

V MSSQL jde pousit (select ...)union (select ...) oba musi mit stejne sloupce



                                            Jaromir Cermak


-----Original Message-----
From: Bohac Frantisek [mailto:bohacf@vnol.cz]
Sent: Friday, June 18, 2004 11:54 AM

Dobry den,

potreboval bych, v selectu v databazi Accessu udelat to, aby mi vyjely prvni
hodnoty kladne vzestupne a pak zaporne:


Odpovedá: Lstiburek Pavel

18. 6. 2004 11:38

No myslim si toto nebude pracovat klauzule ORDER by se,
vztahuje vzdy na cely resultset. On ji Access si dovoli
pouzit dvakrat, ale zabere pouze ta druha.
Lepsi bude asi vyraz s IIF(..)

Pavel

> From: Petr Langer [mailto:langer@xdom.cz]
 
 
> SELECT hodnota FROM tabulka WHERE hodnota >= 0 ORDER BY hodnota
> UNION ALL
> SELECT hodnota FROM tabulka WHERE hodnota < 0 ORDER BY hodnota DESC
>
> HTH,
> Petr Langer
>
> ----- Original Message -----
> From: "Bohac Frantisek" <bohacf@vnol.cz>
> Subject: Select prvni kladnych hodnot, pak zapornych
>
>
> > Dobry den,
> >
> > potreboval bych, v selectu v databazi Accessu udelat to,
> aby mi vyjely
> prvni
> > hodnoty kladne vzestupne a pak zaporne:
> >
> > 10
> > 40
> > 55
> > 70
> > 80
> > -2
> > -14
> > -25
> >
> > Jde to nejak udelat pres SQL? Slo by to vice dotazy, ale
> nevim, jak je
> > zaroven zobrazit v gridu...
> >
> > Nakopnete me nekdo?
> >
>

Odpovedá: Bohac Frantisek

18. 6. 2004 11:46

To je pravda - order by se pouzil az ten druhy, ale IIF() se vztahuje pouze
na jedno pole a ja potebuji vsechny pole setridit podle jednoho ...

Tohle by bylo v poradku, kdyby se neignorovalo to prvni setrideni ...

SELECT jmeno, sto_vysl
FROM lide
where sto_vysl >0
order by sto_vysl

union

SELECT jmeno, sto_vysl
FROM lide
where sto_vysl <=0
order by sto_vysl desc;

Vi nekdo jak na to? Da se to nejak udelat v ramci SQL dotazu na Accessu?

Dekuji vsem za dosavadni informace.

F.


----- Original Message -----
From: "Lstiburek Pavel" <lstiburek@ceb.cz>

> No myslim si toto nebude pracovat klauzule ORDER by se,
> vztahuje vzdy na cely resultset. On ji Access si dovoli
> pouzit dvakrat, ale zabere pouze ta druha.
> Lepsi bude asi vyraz s IIF(..)


Odpovedá: petr palicka

18. 6. 2004 12:04

> SELECT jmeno, sto_vysl
> FROM lide
> where sto_vysl >0
>
> union
>
> SELECT jmeno, sto_vysl
> FROM lide
> where sto_vysl <=0

order by abs(sto_vysl)
          ^^^

tohle by neslo? strilim od boku
nutno vyzkouset!

peca


Odpovedá: Zalesak Tomas

18. 6. 2004 12:24

> potreboval bych, v selectu v databazi Accessu udelat to, aby
> mi vyjely prvni hodnoty kladne vzestupne a pak zaporne:
>
> 10
> 40
> 55
> 70
> 80
> -2
> -14
> -25
>
> Jde to nejak udelat pres SQL ?

SELECT hodnota
FROM tabulka
ORDER BY SIGN(hodnota) DESC, ABS(hodnota)

Tomas Zalesak


Odpovedá: Bohac Frantisek

18. 6. 2004 13:16

fce SIGN vyzadovala nejakou DLL knihovnu, coz neni vhodne (musi to bezet na
standardni instalaci MS JET+DAO), tak jsem to vyresil s pomoci IIF v
klauzuli ORDER BY, jak rikal Pavel Lstiburek:

SELECT jmeno, sto_vysl
FROM lide
WHERE sto_vysl <> null
ORDER BY IIF(sto_vysl <1,1,0), sto_vysl;

Vsem dekuji za pomoc a preji hezky vikend.

S pozdravem

Frantisek Bohac


----- Original Message -----
From: "Zalesak Tomas" <tomas.zalesak@lcs.cz>

> ORDER BY SIGN(hodnota) DESC, ABS(hodnota)